const fs = require("fs");
const path = require("path");
// 当创建目录是父目录必须存在
// fs.mkdir('a/d', function (err) {
//     console.log(err);
// })

//文件读取权限 判断是否存在文件
// fs.access('a', fs.constants.R_OK, err => {
//     console.log(err);
// })
// function mkdirp(dir) {
//     let paths = dir.split('/')

// }
// fs.unlink fs.rmdir
// -r 递归 f force
// 同步删除
function rmdirSync(dir) {
  let files = fs.readdirSync(dir);
  files.forEach((item) => {
    let child = fs.statSync(path.join(dir, item));
    if (child.isDirectory()) {
      rmdirSync(path.join(dir, item));
    } else {
      fs.unlinkSync(path.join(dir, item));
    }
  });
  fs.rmdirSync(dir);
}
// rmdirSync('a')
//异步删除 promise promiseall
function rmdir(dir) {
  return new Promise((res, rej) => {
    fs.stat(dir, (err, stat) => {
      if (stat.isDirectory()) {
        fs.readdir(dir, (err, files) => {
          if (err) return rej(err);
          Promise.all(files.map((item) => rmdir(path.join(dir, item)))).then(
            () => {
              fs.rmdir(dir, res);
            }
          );
        });
      } else {
        fs.unlink(dir, res);
      }
    });
  });
}
rmdir("a");
